package com.level.system.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.level.system.entity.emr.*;
import com.level.system.entity.healthcare.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface EmrMap extends BaseMapper<PATIENT_INFORMATION> {

    /**
     * 通过病案号查询病案首页是否存在记录
     * @param bean
     * @return
     */
    PATIENT_INFORMATION queryEmrBasy(PATIENT_INFORMATION bean);

    /**
     * 插入新的病案首页记录
     * @param bean
     */
    void insertEmrBasy(PATIENT_INFORMATION bean);

    /**
     * 更新病案首页记录
     * @param bean
     */
    void updateEmrBasy(@Param("bean") PATIENT_INFORMATION bean,@Param("map")PATIENT_INFORMATION temp_basy);

    /**
     * 查询入院信息
     * @param bean
     * @return
     */
    PATIENT_INFORMATION queryPatVisiting(PATIENT_INFORMATION bean);

    /**
     * 插入新的病案首页记录
     * @param bean
     */
    void insertPatVisiting(PATIENT_INFORMATION bean);

    /**
     * 更新病案首页记录
     * @param bean
     */
    void updatePatVisiting(PATIENT_INFORMATION bean);

    /**
     * 插入新的病案首页记录
     * @param bean
     */
    void insertPatientInfo(PATIENT_INFORMATION bean);

    /**
     * 更新病案首页记录
     * @param bean
     */
    void updatePatientInfo(PATIENT_INFORMATION bean);


    /**
     * 查询婴儿信息
     * @param bean
     * @return
     */
    InfantBean queryinfant(InfantBean bean);
    /**
     * 查询婴儿信息
     * @param bean
     * @return
     */
    void insertinfant(InfantBean bean);
    /**
     * 查询婴儿信息
     * @param bean
     * @return
     */
    void updateinfant(InfantBean bean);
    /**
     * 查询病区信息
     * @param bean
     * @return
     */
    BQDM queryBqxx(BQDM bean);
    /**
     * 新增病区信息
     * @param bean
     * @return
     */
    void insertBqxx(BQDM bean);
    /**
     * 更新病区信息
     * @param bean
     * @return
     */
    void updateBqxx(BQDM bean);
    /**
     * 查询病区信息
     * @param bean
     * @return
     */
    OperationList queryPatientSSInfo(OperationList bean);
    /**
     * 新增病区信息
     * @param bean
     * @return
     */
    void insertPatientSSInfo(@Param("bean")OperationList bean);
    /**
     * 更新病区信息
     * @param bean
     * @return
     */
    void updatePatientSSInfo(@Param("bean")OperationList bean,@Param("map")OperationList temp_basy);
    /**
     * 查询婴儿信息
     * @param bean
     * @return
     */
    KSDM queryKsdm(KSDM bean);
    /**
     * 查询婴儿信息
     * @param bean
     * @return
     */
    void insertKsdm(KSDM bean);
    /**
     * 查询婴儿信息
     * @param bean
     * @return
     */
    void updateKsdm(KSDM bean);
    /**
     * 查询医生信息
     * @param bean
     * @return
     */
    ZGXX querydoctroInfo(ZGXX bean);
    /**
     * 新增医生信息
     * @param bean
     * @return
     */
    void insertdoctroInfo(ZGXX bean);
    /**
     * 更新医生信息
     * @param bean
     * @return
     */
    void updatedoctroInfo(ZGXX bean);

    /**
     * 医保上传-住院生命体征
     * @param map
     */
    List<Map<String,Object>> RecordDetailNo_ZY(Map<String,Object> map);
    /**
     * 医保上传-住院病案
     * @param map
     */
    List<Map<String,Object>> AdmissionNo_ZY(Map<String,Object> map);
    /**
     * 医保上传-病程记录
     * @param map
     */
    List<Map<String,Object>> RecordInpNo_ZY(Map<String,Object> map);
    /**
     * 医保上传-住院病案附页
     * @param map
     */
    List<Map<String,Object>> AdmissionNo_ZYFY(Map<String,Object> map);

    /**
     * 出院小结
     * @param map
     * @return
     */
    List<Map<String,Object>> Dischargesummary_ZY(Map<String,Object> map);

    /**
     * 手术记录
     * @param map
     * @return
     */
    List<Map<String,Object>> Operationrecords_ZY(Map<String,Object> map);
    /**
     * 医保上传-门诊生命体征
     * @param map
     */
    List<Map<String,Object>> RecordDetailNo_MZ(Map<String,Object> map);
    /**
     * 医保上传-门诊生病案
     * @param map
     */
    List<Map<String,Object>> AdmissionNo_MZ(Map<String,Object> map);

    /**
     * 查询门诊信息
     * @param bean
     * @return
     */
    List<PATIENT_INFORMATION_MZ> queryMzPatVisiting(PATIENT_INFORMATION_MZ bean);
    List<PATIENT_INFORMATION_MZ> queryMzPatientInfo(PATIENT_INFORMATION_MZ bean);
    /**
     * 插入门诊信息
     * @param bean
     * @return
     */
    void insertMzPatVisiting(PATIENT_INFORMATION_MZ bean);
    void insertMzPatientInfo(PATIENT_INFORMATION_MZ bean);
    /**
     * 更新门诊信息
     * @param bean
     * @return
     */
    void updateMzPatientInfo(PATIENT_INFORMATION_MZ bean);
    void updateMzPatVisiting(PATIENT_INFORMATION_MZ bean);


    /**
     * 更新病人性质
     * @param map
     * @return
     */
    void deleteBRXZ(Map map);
    void saveBRXZ(List list);

    /**
     * 转床
     * @param bean
     * @return
     */
    void deleteCWBDXX(CWBDXX bean);
    void saveCWBDXX(List<CWBDXX> list);
    /**
     * 查询
     * @param map
     * @return
     */
    List<Map<String, Object>> queryRecLisInpatient(Map<String,Object> map);

    List<Map<String, Object>> queryRecLisInpatient1(Map<String,Object> map);

    LIS_YBXX querylisybxx(LIS_YBXX lisybxx);

    void insertlisybxx(LIS_YBXX lisybxx);

    void updatelisybxx(LIS_YBXX lisybxx);

    LIS_YBXX_R querylisybxxr(LIS_YBXX_R lisybxx);

    void insertlisybxxr(LIS_YBXX_R lisybxx);

    void updatelisybxxr(LIS_YBXX_R lisybxx);


    //-------------------------------------------2022新医保上传-入院信息
    List<Map<String, Object>> getAdmissionInformation(Map<String,Object> map);
    //-------------------------------------------2022新医保上传-基本信息
    Map<String, Object> getBaseInformation(Map<String,Object> map);
    //-------------------------------------------2022新医保上传-诊断信息
    List<Map<String, Object>> getDiagnosisList(Map<String,Object> map);
    //-------------------------------------------2022新医保上传-手术信息
    List<Map<String, Object>> getSurgeryList(Map<String,Object> map);
    //-------------------------------------------2022新医保上传-诊断信息电子病历
    List<Map<String, Object>> getEMR_DiagnosisList(Map<String,Object> map);
    //-------------------------------------------2022新医保上传-病程记录电子病历
    List<Map<String, Object>> getEMR_ProgressList(Map<String,Object> map);
    //-------------------------------------------2022新医保上传-手术记录电子病历
    List<Map<String, Object>> getEMR_SurgeryList(Map<String,Object> map);
    //-------------------------------------------2022新医保上传-出院小结电子病历
    List<Map<String, Object>> getEMR_DischargeList(Map<String,Object> map);
    //-------------------------------------------2022新医保上传-死亡记录电子病历
    List<Map<String, Object>> getEMR_DeathList(Map<String,Object> map);
    //-------------------------------------------2022新医保上传-查询病人是否归档
    Integer getEmrArchiveStatus(Map<String,Object> map);
}
